<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        {
            const arr = [1, 2, 3, 4, 5]
            arr.reduce(async (pre, cur, index) => {
                const lastTime = await pre
                const time = index === 0 ? 0 : 1000 + (index - 1) * 500
                console.log(cur);
                return new Promise((resolve) => {
                    setTimeout(() => resolve(time), time)
                })
            }, Promise.resolve(0))
        }
    </script>
</body>
</html>